bind: Use procd in /etc/init.d/named
authorNoah Meyerhans <[email protected]>
Fri, 28 Nov 2014 22:35:55 +0000 (14:35 -0800)
committerNoah Meyerhans <[email protected]>
Sat, 6 Dec 2014 22:11:10 +0000 (14:11 -0800)
Signed-off-by: Noah Meyerhans <[email protected]>
net/bind/files/named.init

index 986e5fe087bf1be3e8bae2d00920b2521d2e8af7..1441dbd4704bca9e31dbfbdff8e22b7c2c853fd1 100644 (file)
@@ -1,40 +1,34 @@
 #!/bin/sh /etc/rc.common
+# Copyright (C) 2014 Noah Meyerhans <[email protected]>
+# Licensed under the terms of the GNU General Public License version 2
+# or (at your discretion) any later later version
+
+USE_PROCD=1
+
 START=50
 
 config_file=/etc/bind/named.conf
 pid_file=/var/run/named/named.pid
 
-start() {
-  if [ -e $pid_file ]
-  then
-     echo "  named already running with PID `cat $pid_file`"
-     return 1
-  fi
-  echo Starting isc-bind
-
-  /usr/sbin/named -c $config_file
+logdir=/var/log/named/
+cachedir=/var/cache/bind
+libdir=/var/lib/bind
+config_file=/etc/bind/named.conf
 
-  if [ $? -ne 0 ]
-  then
-    echo "  isc-bind failed to start"
-  fi
+fix_perms() {
+    for dir in $libdir $logdir $cachedir; do
+       test -e "$dir" || {
+            mkdir -p "$dir"
+            chgrp bind "$dir"
+            chmod g+w "$dir"
+       }
+    done
 }
 
-stop() {
-  echo "Stopping isc-bind"
-  if [ -e $pid_file ]
-  then
-    kill `cat $pid_file`
-
-    if [ $? -ne 0 ]
-    then
-      echo "  PID " `cat $pid_file` not found
-      echo "  Is the named server running?"
-    fi
-
-    rm -f $pid_file
-
-    else
-    echo "  $pid_file not found"
-  fi
+start_service() {
+    fix_perms
+    procd_open_instance
+    procd_set_param command /usr/sbin/named -u bind -f -c $config_file
+    procd_set_param respawn
+    procd_close_instance
 }